<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 <meta http-equiv="content-style-type" content="text/css" />
 <meta name="author" content="WarpEnterprises, Arlsair" />
 <meta name="date" content="2003-07-09" />
 <title>Layer AviSynth Filter</title>
 <link rel="stylesheet" type="text/css" href="../../style.css" />
 <style type="text/css">td {vertical-align:top;}</style>
</head><body>
<a name="Layer"></a><h3>Layer</h3></h3>

<tt>Layer(</tt><i>clip &quot;base_clip&quot;, clip &quot;overlay_clip&quot;, string &quot;op&quot;, int &quot;level&quot;, int &quot;x&quot;, int &quot;y&quot;, int &quot;threshold&quot;, bool &quot;use_chroma&quot;</i><tt>)</tt><br />
<br />
<i>[funktioniert noch nicht in AviSynth v2.5]</i><br />
<br />
Dieser Filter kann zwei Clips mit unterschiedlicher Gr&ouml;&szlig;e (m&uuml;ssen aber im gleichem Farbraum sein) mischen, wobei verschiedene Methoden verwendet werden k&ouml;nnen. F&uuml;r eine Pixel-basierte Transparenz-Maske wird der vierte Farbkanal beim Farbraum RGB32 (der A- oder Alpha-Kanal) verwendet.<br />
<br />
<i>base_clip</i>: Der unten liegende Clip, der die Gr&ouml;&szlig;e und die anderen Video- und Audio-Eigenschaften des entstehenden Clips bestimmt.<br />
<i>overlay_clip</i>: Der Clip, der zu <i>base_clip</i> dazugemischt wird.<br />
<i>op</i>: Die Mischoperation, die durchgef&uuml;hrt wird. Das kann sein: &quot;add&quot; (Addieren), &quot;subtract&quot; (Subtrahieren), &quot;brighten&quot; (Aufhellen), &quot;darken&quot; (Verdunkeln), &quot;fast&quot; (die Schnellvariante), &quot;mul&quot; (Multiplizieren).<br />
<i>level</i>: 0-255, gibt die St&auml;rke der durchgef&uuml;hrten Operation an. 0: der <i>base_clip</i> wird nicht ver&auml;ndert, 255: die maximale St&auml;rke wird verwendet.<br />
<i>x, y</i>: Die Verschiebung des <i>overlay_clip</i> gegen&uuml;ber dem <i>base_clip</i>.<br />
<i>threshold</i>: Gibt es nur f&uuml;r &quot;lighten&quot; and &quot;darken&quot; (ein Schwellenwert).<br />
<i>use_chroma</i>: Gibt an, ob auch die Farbinformation von <i>overlay_clip</i> verwendet wird, der Standardwert ist <i>true</i> (Farbe wird verwendet). Bei <i>false</i> wird nur die Helligkeitsinformation verwendet.<br />
<br />
Es gibt einige Unterschiede im Verhalten und der erlaubten Parameter, die vom Farbraum und der verwendeten Mischoperation abh&auml;ngen:<br />
<ul>
 <li>Bei YUY2 gibt es keinen Alpha-Kanal, daher auch keine Transparenz-Maske. Das Verhalten ist also so, als ob die Maske &uuml;berall undurchsichtig w&auml;re.</li>
 <li>Bei RGB32 wird der Alpha-Kanal vom <i>overlay_clip</i> mit <i>level</i> multipliziert, der effektive Wert f&uuml;r Alpha f&uuml;r ein Pixel ist also alpha = (alpha_mask * level) / 256. Daher muss f&uuml;r eine Operation mit voller St&auml;rke Alpha und <i>level</i> gleich 255 sein.</li>
</ul>

Diese Operationen verhalten sich f&uuml;r RGB32 und YUY2 gleich:<br />
<table border="1">
 <tr> 
  <td> 
   <tt>
    &quot;fast&quot;: <i>use_chroma</i> muss TRUE sein, <i>level</i> und <i>threshold</i> werden nicht verwendet.<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   Das Ergebnis ist einfach der Mittelwert zwischen <i>base_clip</i> und <i>overlay_clip</i>.<br />
    <br />
    &quot;add&quot;: <i>threshold</i> wird nicht verwendet. Der Unterschied zwischen <i>base_clip</i> und <i>overlay_clip</i> wird<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mit alpha multipliziert und zum <i>base_clip</i> dazugez&auml;hlt.<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alpha=0 -&gt; nur das <i>base_clip</i> ist sichtbar, alpha=128 -&gt; <i>base_clip</i> und <i>overlay_clip</i> werden<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gleichwertig gemischt, alpha=255 -&gt; nur das <i>overlay_clip</i> ist sichtbar.<br />
    <br />
    &quot;subtract&quot;: das gleiche wie bei &quot;add&quot;, allerdings wird das <i>overlay_clip</i> vorher invertiert.
   </tt>
  </td>
 </tr>
</table>
<br />
Diese Operationen arbeiten (anscheinend) nur in YUY2 korrekt:<br />
<table border="1">
 <tr> 
  <td> 
   <tt>
    &quot;mul&quot;: <i>threshold</i> wird nicht verwendet. Der <i>base_clip</i> wird so wie der <i>overlay_clip</i> &quot;eingef&auml;rbt&quot;,<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>use_chroma</i> sollte also true sein. alpha=0 -&gt; nur der <i>base_clip</i> sichtbar, alpha=255 -&gt;<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ungef&auml;hr die gleiche Helligkeit wie der <i>base_clip</i> aber mit den Farben vom <i>overlay_clip</i><br />
    <br />
    &quot;lighten&quot;: <i>use_chroma</i> muss TRUE sein. F&uuml;hrt die gleiche Operation wie &quot;add&quot; durch, aber nur wenn<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; das Ergebnis HELLER als der <i>base_clip</i> ist, wird der neue Wert auch verwendet. Mit einem<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hohen <i>threshold</i> ist die Operation wahrscheinlicher, mit <i>threshold</i>=255 ist das Ergebnis<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; das gleiche wie &quot;add&quot;, mit <i>threshold</i>=0 wird der <i>base_clip</i> eher unver&auml;ndert gelassen,<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; abh&auml;ngig von der Differenz zwischen <i>base_clip </i>und <i>overlay_clip</i>.<br />
    <br />
    &quot;darken&quot;: das gleiche wie &quot;lighten&quot;, allerdings wird das Ergebnis nur verwendet, wenn der neue Wert<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DUNKLER als <i>base_clip</i> ist.
   </tt>
  </td>
 </tr>
</table><br />
Siehe auch <a href="../syntax.htm#multiclip" target="_self">hier</a> zu den entstehenden Clip-Eigenschaften.<br />
<br />
<hr />
<br />
<a name="Mask"></a><h3>Mask</h3>

<tt>Mask(</tt><i>clip, clip &quot;mask_clip&quot;</i><tt>)</tt><br />
<br />
Setzt in <i>clip</i> eine definierte Alpha-Maske (zur Verwendung mit <tt>Layer</tt>), das <i>mask_clip</i> wird auf Grauwerte umgewandelt und diese werden als Maske (Alpha-Kanal) vom RGB32 verwendet. Bei diesem Kanal bedeutet &quot;schwarz&quot; v&ouml;llig durchsichtig, &quot;wei&szlig;&quot; bedeutet v&ouml;llig undurchsichtig.<br />
<br />
<hr />
<br />
<a name="ResetMask"></a><h3>ResetMask</h3>

<tt>ResetMask(</tt><i>clip</i><tt>)</tt><br />
<br />
Setzt die Alpha-Maske vom <i>clip</i> komplett auf undurchsichtig (zur Verwendung mit <tt>Layer</tt>).<br />
<br />
Der Alpha-Kanal eines RGB32-Clip ist nicht immer in einem definierten Zustand (abh&auml;ngig von der Quelle). Dieser Filter ist die einfachste Art, eine komplett &quot;wei&szlig;e&quot; Maske zu setzen:<br />
<br />
<hr />
<br />
<a name="ColorKeyMask"></a><h3>ColorKeyMask</h3>

<tt>ColorKeyMask(</tt><i>clip, int &quot;color&quot;, int &quot;tolerance&quot;</i><tt>)</tt><br />
<br />
Setzt den Alpha-Kanal (&auml;hnlich wie auch <i>Mask</i>), allerdings durch Vergleichen der Farben. Jedes Pixel mit einem Farbunterschied, der kleiner als <i>tolerance</i> ist, wird auf transparent gesetzt, andernfalls unver&auml;ndert gelassen (es wird NICHT auf undurchsichtig gesetzt).<br />
<br />
<form action=""><input type="button" value="Zur&uuml;ck" onclick="history.go(-1)" /></form>
</body>
</html>